package com.example.dw.service;

import com.example.dw.dto.ActivityCommentDTO;
import com.example.dw.dto.ActivityQueryDTO;
import com.example.dw.dto.FavoriteDTO;
import com.example.dw.entity.*;

import java.util.List;
import java.util.Map;

/**
 * 活动服务接口
 * @author system
 * @since 2024-01-01
 */
public interface ActivityService {

    /**
     * 根据ID获取活动详情
     */
    Activity getActiveById(Integer activityid);

    /**
     * 分页获取活动评论
     */
    Map<String, Object> getActiveCommentByPage(ActivityCommentDTO commentDTO);

    /**
     * 获取活动评论（Web版）
     */
    List<ActivityComment> getActiveComment(Integer activityid);

    /**
     * 添加活动评论
     */
    void addActiveComment(Integer userid, ActivityCommentDTO commentDTO);

    /**
     * 切换收藏状态
     */
    void changeFavorite(Integer userid, FavoriteDTO favoriteDTO);

    /**
     * 检查是否收藏
     */
    Boolean isFavorite(Integer userid, Integer activityid);

    /**
     * 分页获取未过期活动
     */
    Map<String, Object> getActiveByPageIng(ActivityQueryDTO queryDTO);

    /**
     * 分页获取已过期活动
     */
    Map<String, Object> getActiveByPageEd(ActivityQueryDTO queryDTO);

    /**
     * 分页获取活动大类信息
     */
    Map<String, Object> getAllBigTypeByPage(ActivityQueryDTO queryDTO);

    /**
     * 按月份获取活动数据（分页）
     */
    Map<String, Object> getActiveByMonth(ActivityQueryDTO queryDTO);

    /**
     * 获取客服二维码
     */
    List<QR> getQR();

    /**
     * 获取该月份内全部活动
     */
    List<Activity> getActiveByMonthAll(String month);

    /**
     * 根据活动大类分页获取活动
     */
    Map<String, Object> getActivedByPage(ActivityQueryDTO queryDTO);
} 